package MAP;

import java.util.HashMap;
import java.util.Map;

public class Example1 {
    public static void main(String[] args) {
        //HashMap类的示例：
        //1.V put(K key, V value) :
        //以键值对的形式向集合中添加元素
        //首次添加某元素时，返回null；
        //重复添加相同键的元素时，新值覆盖旧值，并返回旧值
        System.out.println("void put(Object key, Object value)方法演示:");
        Map map1 = new HashMap();
        Object obj1 = map1.put("12","计算机科学与技术");
        System.out.println("第一次添加元素后的返回值:" + obj1);
        map1.put("13","网络安全");
        Object obj2 = map1.put("12","计算机");
        System.out.println("重复添加后的返回值:" + obj2);
        map1.put("14","信息工程");
        System.out.println("该HashMap集合为:" + map1);
        System.out.println("===========================================================");

        //2.V get(Object key) : 根据指定键返回其对应的值，没有则返回null
        System.out.println("Object get(Object key)方法演示:");
        Map map2 = new HashMap<>();
        map2.put("916", "数据结构和计算机网络");
        map2.put("935", "数据结构，操作系统和计组");
        map2.put("872", "数据结构和操作系统");

        String value1 = (String) map2.get("916");
        String value2 = (String) map2.get("935");
        String value3 = (String) map2.get("872");
        String value4 = (String) map2.get("408");

        System.out.println("916——" + value1);
        System.out.println("935——" + value2);
        System.out.println("872——" + value3);
        System.out.println("408——" + value4);
        System.out.println("============================================================");

        //3.V remove(Object key) : 根据指定的键删除集合中对应键值对，返回删除掉的值，若没有则返回null。
        System.out.println("V remove(Object key)方法演示:");
        Map map3 = new HashMap<>();
        map3.put("11408", "荷花");
        map3.put("11235", "莲花");
        map3.put("10456", "海棠花");

        System.out.println("map = " + map3);
        Object o = map3.remove("11408");       //实际可不做接收
        System.out.println("删除的值 = " + o);
        System.out.println("map = " + map3);
        Object o1 = map3.remove("408");
        System.out.println("删除的值 = " + o1);
        System.out.println("=============================================================");

        //4.int size() : 获取当前集合中元素的个数（集合中键值对的数量）
        System.out.println("int size()方法演示:");
        Map map4 = new HashMap<>();
        map4.put("1","北京");
        map4.put("2","上海");
        map4.put("3","深圳");
        map4.put("4","重庆");
        map4.put("5","郑州");

        System.out.println(map4);
        System.out.println("该HashMap集合的元素个数:" + map4.size());
        System.out.println("==============================================================");

        //5.default V replace(K key, V value) : 根据指定键，替换掉其在集合中对应的值，并返回被替换的值
        System.out.println("default V replace(K key, V value)方法演示:");
        Map map5 = new HashMap<>();
        map5.put("001","梅");
        map5.put("002","兰");
        map5.put("003","竹");
        map5.put("004","菊");
        map5.replace("001","叶");
        System.out.println("被替换后的集合为:" + map5);

    }
}
